#!/usr/bin/env python
# -*- coding: utf-8 -*-
# vim:ts=4:sw=4:softtabstop=4:smarttab:expandtab


import sys
import os
import traceback
import getopt
import lib.kindleunpack as kindleunpack


def unpackAzw3(input_file, output_dir):
	apnxfile = None
	epubversion = '2'
	use_hd = False
	dump = False
	writeraw = True
	splitcombos = True
	try:
		kindleunpack.unpackBook(input_file, output_dir, apnxfile, epubversion, use_hd, dodump=dump, dowriteraw=writeraw, dosplitcombos=splitcombos)
	except Exception as e:
		print("Error: %s" % e)
		print(traceback.format_exc())


def unpackMain():
	args = sys.argv
	print(args)

	if len(args)<5:
		print(args[0], '-i input_name -o output_dir')
		return -1

	#getopt函数的第二个参数是短参数选项。"h"是一个开关选项；"i:"和"o:"则表示后面应该带一个参数。
	#getopt函数的第三个参数[, long_options]为可选的长选项参数.
	#getopt函数返回两个列表：opts和args。opts为分析出的格式信息。args为不属于格式信息的剩余的命令行参数。
	#	opts是一个两元组的列表。每个元素为：(选项串,附加参数)。如果没有附加参数则为空串''。
	#opts, args = getopt.getopt(sys.argv[1:], "hi:o:")
	opts, args = getopt.getopt(sys.argv[1:], "hi:o:", ["version", "file="])
	input_file=""
	output_dir=""
	print("opts:", opts)

	for op, value in opts:
		if op == "-i":
			input_file = value
		elif op == "-o":
			output_dir = value
		elif op == "-h":
			print("args[0], '-i input_name -o output_dir'")
			sys.exit()

	unpackAzw3(input_file, output_dir)


if __name__ == "__main__":
	unpackMain()
